home *** CD-ROM | disk | FTP | other *** search
/ Aminet 45 / Aminet 45 (2001)(GTI - Schatztruhe)[!][Oct 2001].iso / Aminet / dev / e / yaec.lha / examples / bla.library.e < prev    next >
Text File  |  2001-08-12  |  2KB  |  62 lines

  1. LIBRARY 'bla.library', 37, 1, 'bla.library by me 2001'
  2.  
  3. -> YAEC1.9a : Now opens exec,dos,gfx,intui automatically!
  4. ->            Printing is possible! (uses callers output)
  5.  
  6. /* NOTE1 : LIBRARY mode is not for beginners */
  7.  
  8. /* NOTE3 : do NOT pass out exceptions from librarycode */
  9.  
  10. /* NOTE4 : filename of library will be src-filename without .e */
  11.  
  12. /* NOTE5 : unlike ec3.3a, yaec libraries uses SHARED globals */
  13. /* not shared mode may or may not happen depending on things and other stuff */
  14.  
  15. /* NOTE6 : .fd file gets created automatically, use bin/fdtool to get .ext */
  16.  
  17. /* our public entrypoints, starting at -30 */
  18.                     
  19. ENTRY Func1(x,y,z)(d0,a0,a1) IS func1(D0, A0, A1)
  20. -> any regs BUT a2/a4/a7/d7 !
  21.  
  22. ENTRY Func2(x,y)(d0,a0)      IS func2(D0, A0)
  23.  
  24. /* yaec1.9 : now its possible to print from libraries. */
  25. /* As the "stdout" variable is NIL, dos.library/Output() is */
  26. /* automatically used instead. */
  27. ENTRY Func3()()              IS WriteF('bla.library says hello!\n')
  28.  
  29. /* the four required functions */
  30. /* see amiga dev cd x.x (RKM) for info about theese functions */
  31. /* for example, do NOT use functions that could break Forbid()! */
  32.  
  33. /* The Init() and Open() routines should return <> NIL */
  34. /* if all went okey, else NIL */
  35.  
  36. /* The Expunge routine should normally always return <>NIL */
  37. /* But in some cases we want to prevent removing of lib, */
  38. /* in that case return NIL */
  39.  
  40. PROC Init() -> gets called when loaded from disk !
  41. ENDPROC TRUE  -> return TRUE (was: libbase) for success
  42.  
  43. PROC Open() -> gets called on every OpenLibrary() !
  44. ENDPROC TRUE -> return TRUE (was: libbase) for success
  45.  
  46. PROC Close() -> gets called on every CloseLibrary() !
  47. ENDPROC TRUE -> may return anything..
  48.  
  49. /* we end up here if we have no openers and system wants memory */
  50. /* should we exit ? if so, cleanup and return <>NIL */
  51. /* otherwise just return NIL */
  52. PROC Expunge() -> gets called when (attempting) remove from mem !
  53. ENDPROC TRUE -> allow lib to be removed from memory. (New for v1.9)
  54.               ->  (returning FALSE prevents library from beeing removed)
  55.  
  56. /* just some silly(?) functions */
  57.  
  58. PROC func1(x, y, z) IS x+y*z
  59.  
  60. PROC func2(a, b) IS -a*b
  61.  
  62.